using System;

namespace NCover.Actions
{
	/// <summary>
	/// Summary description for NCoverReportAction.
	/// </summary>
	public class NCoverReportAction
	{
		public NCover.Message InfoOutput = new Message(MessageSink);
		public NCover.Message DebugOutput = new Message(MessageSink);
		public string HistoryFile;
		public string ReportName;
		public string[] Actuals;
		public string PublishDir
		{
			get 
			{
				if (_publishDir == null && NCover.NCoverCheck.Add(51) && NCover.NCoverCheck.Add(50) && NCover.NCoverCheck.Add(50) && NCover.NCoverCheck.Add(50) && NCover.NCoverCheck.Add(50) && NCover.NCoverCheck.Add(50) && NCover.NCoverCheck.Add(50) && NCover.NCoverCheck.Add(50) && NCover.NCoverCheck.Add(50) && NCover.NCoverCheck.Add(50) && NCover.NCoverCheck.Add(50) && NCover.NCoverCheck.Add(50) && NCover.NCoverCheck.Add(50) && NCover.NCoverCheck.Add(50))
				{
					NCover.NCoverCheck.Add(47); NCover.NCoverCheck.Add(46); NCover.NCoverCheck.Add(46); NCover.NCoverCheck.Add(46); NCover.NCoverCheck.Add(46); NCover.NCoverCheck.Add(46); NCover.NCoverCheck.Add(46); NCover.NCoverCheck.Add(46); NCover.NCoverCheck.Add(46); NCover.NCoverCheck.Add(46); NCover.NCoverCheck.Add(46); NCover.NCoverCheck.Add(46); NCover.NCoverCheck.Add(46); NCover.NCoverCheck.Add(46); return Environment.CurrentDirectory;
				}
				else
				{
					NCover.NCoverCheck.Add(48); NCover.NCoverCheck.Add(47); NCover.NCoverCheck.Add(47); NCover.NCoverCheck.Add(47); NCover.NCoverCheck.Add(47); NCover.NCoverCheck.Add(47); NCover.NCoverCheck.Add(47); NCover.NCoverCheck.Add(47); NCover.NCoverCheck.Add(47); NCover.NCoverCheck.Add(47); NCover.NCoverCheck.Add(47); NCover.NCoverCheck.Add(47); NCover.NCoverCheck.Add(47); NCover.NCoverCheck.Add(47); return _publishDir;
				}
			}
			set 
			{
				_publishDir = value;
			}
		}
		private string _publishDir;
	
		private decimal _minimum;

		public decimal Minimum 
		{
			get 
			{
				NCover.NCoverCheck.Add(49); NCover.NCoverCheck.Add(48); NCover.NCoverCheck.Add(48); NCover.NCoverCheck.Add(48); NCover.NCoverCheck.Add(48); NCover.NCoverCheck.Add(48); NCover.NCoverCheck.Add(48); NCover.NCoverCheck.Add(48); NCover.NCoverCheck.Add(48); NCover.NCoverCheck.Add(48); NCover.NCoverCheck.Add(48); NCover.NCoverCheck.Add(48); NCover.NCoverCheck.Add(48); NCover.NCoverCheck.Add(48); return _minimum;
			}
			set 
			{
				if (value > 1 && NCover.NCoverCheck.Add(52) && NCover.NCoverCheck.Add(51) && NCover.NCoverCheck.Add(51) && NCover.NCoverCheck.Add(51) && NCover.NCoverCheck.Add(51) && NCover.NCoverCheck.Add(51) && NCover.NCoverCheck.Add(51) && NCover.NCoverCheck.Add(51) && NCover.NCoverCheck.Add(51) && NCover.NCoverCheck.Add(51) && NCover.NCoverCheck.Add(51) && NCover.NCoverCheck.Add(51) && NCover.NCoverCheck.Add(51) && NCover.NCoverCheck.Add(51))
				{
					_minimum = value / 100;
				}
				else
				{
					_minimum = value;
				}
			}
		}

		public decimal Execute()
		{
			NCover.NCoverCheck.Add(50); NCover.NCoverCheck.Add(49); NCover.NCoverCheck.Add(49); NCover.NCoverCheck.Add(49); NCover.NCoverCheck.Add(49); NCover.NCoverCheck.Add(49); NCover.NCoverCheck.Add(49); NCover.NCoverCheck.Add(49); NCover.NCoverCheck.Add(49); NCover.NCoverCheck.Add(49); NCover.NCoverCheck.Add(49); NCover.NCoverCheck.Add(49); NCover.NCoverCheck.Add(49); NCover.NCoverCheck.Add(49); return new NCover.Report.NCoverReport().Do(this);
		}

		public static void MessageSink(string message)
		{
			// no messages by default.
		}
	}
}














